# #字符串定义
# #空：用引号:字符串变量名=“”
# #非空： 用引号:字符串变量名=“元素值”
#
# # #\t为制表符(执行tab键)，\n为换行符
# # #在引号前加r表转义符后的字符串原样输出
# # #在输入路径的单斜杠上改为双斜杠，可将字符串原样输出
# # info1 = "D:\tools\noco"
# # info2 = r"D:\tools\noco"
# # info3 = "D:\\tools\\noco"
# # # info4 = "小老鼠说：'黄油好吃！'"
# # info4 = '小老鼠说："黄油好吃！"'
# # print(info1)
# # print(info2)
# # print(info3)
# # print(info4)
#
# """
# 字符串下标位置查找
# 下标从头开始为0，从后开始为-1
# 语法格式： 字符串名.find(被查找字符)
#
# """
# info = "wmdofasffsk"
# print(info[4])
# print(info[-2])
# print(info.find("f"))
# print(info.find('a'))
#
# # #字符串替换 语法格式：字符串名.replace(原字符串，新字符串)
# # 其中字符串属于不可变数据类型，替换不会修改原有字符串信息
# # 字符串替换需要新字符串变量接收查看是否替换成功
# """


"""
列表元素删除，指定数据删除
语法：列表名.remove(元素)
注：列表中存在多个元素时，删除第一个匹配到的元素
如果删除的元素在列表中不存在时，代码会报错

"""
# #定义列表
# list1 = ['黄油','奶酪','蛋糕','鲜花','奶酪','黄油']
# #删除 奶酪
# list1.remove('奶酪')
# #查看原列表
# print(list1)

# while True:
#     list1 = ['黄油','奶酪','蛋糕','鲜花','奶酪','黄油']
#     if list1 == "'黄油','蛋糕','鲜花','黄油'":
#         list1.remove('奶酪')
#         print("奶酪全部删除成功！")
#         break
#     else:
#         print("奶酪未全部删除！")
#     pass

# list1 = ['黄油','奶酪','蛋糕','鲜花','奶酪','黄油']
# for i in list1:
#     if i == "['黄油','蛋糕','鲜花','黄油']":
#         break
#     print("奶酪全部删除成功！")

# list1 = [12,47,25,12,30,80]
# for list1:
#     list2 = int(input("请输入list1中要删除的数据："))
#     if list1 != list2:
#     print("12全部删除成功！")

# list1 = ['12','47','25','12','30','80']
# list3 = list1
# print(list3)
# list2 = input("请输入list1中要删除的数据：")
# if list1 in list2:
#     list1.remove(list2)
#
# print(list1)

# list1 = [12,47,25,12,30,80]
# list2 = [12]
# if 12 in list1:
#     list1.remove(list1)
# print(list1)

# list1 = [12,47,25,12,30,80]
# for i in list1:
#     list1.remove(12)
# print(list1)

list1 = [12,47,25,12,30,80]
while 12 in list1:
    list1.remove(12)
print(list1)

"""
字符串定义
空：
    用引号:字符串变量名=""
非空（常用）： 
    用引号:字符串变量名="元素值"

定义形式
1、单引号：值上面加单引号
2、双引号：值上面加双引号
3、三引号：值上面加三引号（注释也属于字符串的内容）
注：特殊字符串：
    带有转义字符的字符串-->转义字符的字符串外面加r字符串内的信息原样输出
    单双引号配合的字符串-->单双引号的字符串，可以通过字符串的引号交叉使用
\n表示换行
\t表示执行tab（制表符）
"""
info1 = "D:\tools\noco"
info2 = r"D:\tools\noco"
info3 = "D:\\tools\\noco"
# info4 = "小老鼠说：'黄油好吃！'"
info4 = '小老鼠说："黄油好吃！"'
print(info1)
print(info2)
print(info3)
print(info4)

"""
字符串的使用
#字符元素查找：格式：字符串变量名[下标]
            结果：存在时返回元素，不存在下标则报错
#字符位置查找（下标：计算机中存放字符/元素的位置，也是计算机计数的一种方式，默认从1开始）
语法格式：字符串名.find(被查找字符)
执行结果：查找成功：返回字符所在下标(索引)
        查找失败：返回-1
"""
# 1.通过位置（下标）找元素
# 定义变量
info = "ricghsi"
# 获取字母g
print(info[3])
print(info[-2])
print(info.find("i"))
# 字母k在哪个位置？
print(info.find("k")) # 如果找不到返回‐1

"""
#字符串替换
语法格式：字符串名.replace(原字符串，新字符串)
注：字符串属于不可变数据类型，替换不会修改原字符串信息
    字符串替换需要新字符串变量接收查看是否替换成功
"""
# 1、先定义字符串
# 2、再使用字符串替换
# 3、进行替换操作后，原字符串不发生改变

in1 = "花籽是一名美丽聪明的女孩子，而且花籽人可好了！"
in2 = in1.replace("花籽","冰淇淋")
print(in2)
print(in1)

"""
# 字符串连接
# 语法格式： 连接字符.join(列表/元组/集合)
# 注:按照指定字符串将列表/元组中的字符元素（非字符元素报错）连接为字符串
"""
info = ['Python', 'Java', 'PHP']
num = [11, 22, 33]
# 连接
info1 = " and ".join(info)
print(info1)
print(type(info1))
# print("‐".join(num)) # 序列中如果不是字符元素，报错TypeError: sequence item 0: expected
# str instance,int found
# 通过连接字符将列表/元组/集合对应字符元素才能连接成字符串

# 字符串拆分
# 应用场景：将字符串按照指定的字符拆分为列表，方便获取指定数据
"""
语法格式： 字符串名.split(分割符)
注：
    字符串拆分之后的结果为列表，按照指定分割符分割
    如果不输入分割符，默认按照字符串中的空格分割
"""
# 定义SQL语句变量
sql = "SelECt * from students where id = 001;"
# 按空格语句中的单词拆分
print(sql.split()) # 结果类型是列表
for i in sql.split(): # 对应容器中元素的获取直接使用for循环即可
    print(i)
# 上述SQL按照where拆分出来
print(sql.split("where")) # 括号里面的字符叫分隔符
# 1.通过split拆分后，结果是列表类型
# 2.如果split中不输入分隔符，默认按照空格拆分

# 字符串其他操作
"""
字符串中字母大小写转换
    转大写： 字符串.upper()
    转小写： 字符串.lower()
判断是否是字母/数字【注意：字符串中不能出现空格】
    判断是字母： 字符串.isalpha()
    判断是数字： 字符串.isdigit()
判断某个字符出现的次数： 字符串.count("字符")
字符串两头去除空格
    格式： 变量.strip()
"""
# 1.去除字符串两头的空格
phone = " 138041441001 "
print(phone)
print(phone.strip())
# 2.大小写转换
# 转大写：字符串.upper()
# 转小写：字符串.lower()
# 定义SQL语句变量
sql = "SelECt * from students where id = 001;"
# 判断是否是查询（select是否存在）
if "select" in sql.lower(): #将SelECt转换为小写.lower()
    print("显示查询结果")
else:
    print("非查询")
